package com.dp.server.entities;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.PrePersist;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;

import com.dp.client.dto.IncidenciaDTO;

@Entity

public class Incidencia 
{
	private int id;
	private Date fechaRegistro;
	private String descripcion;
	private String objeto;
	private int idObjeto;
	
	public Incidencia() {}
	
	public Incidencia(String descripcion, String objeto, int idObjeto) {
		super();
		this.descripcion = descripcion;
		this.objeto = objeto;
		this.idObjeto = idObjeto;
	}

	public Incidencia(IncidenciaDTO incidencia) {
		this.id = incidencia.getId();
		this.fechaRegistro = incidencia.getFechaRegistro();
		this.descripcion = incidencia.getDescripcion();
		this.objeto = incidencia.getObjeto();
		this.idObjeto = incidencia.getIdObjeto();
	}
	
	@Id
	@GeneratedValue(generator="increment")
	@GenericGenerator(name="increment", strategy = "increment")
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "CLIENTE_DATE")
	public Date getFecha() {
		return fechaRegistro;
	}
	public void setFecha(Date fecha) {
		this.fechaRegistro = fecha;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	public String getObjeto() {
		return objeto;
	}
	public void setObjeto(String objeto) {
		this.objeto = objeto;
	}
	public int getIdObjeto() {
		return idObjeto;
	}
	public void setIdObjeto(int idObjeto) {
		this.idObjeto = idObjeto;
	}
	
	@PrePersist
	public void onCreate(){
		this.fechaRegistro = new Date();
	}
}
